home *** CD-ROM | disk | FTP | other *** search
/ Screensavers 98 / Screensavers 98.iso / a / shamen / shamenss.ms_ / shamenss.ms
Text File  |  2000-03-28  |  5KB  |  194 lines

  1. '**************************************************************************
  2. '*                       Setup for Shamen Screensaver
  3. '**************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. ''$INCLUDE 'msdetect.inc'
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST OPTIONS       = 800
  16. CONST APPHELP       = 900
  17. CONST BADPATH       = 6400
  18.  
  19. ''Bitmap ID
  20. CONST LOGO = 1
  21.  
  22. GLOBAL DEST$        ''Default destination directory.
  23. GLOBAL OPTCUR$      ''Option selection from option dialog.
  24.  
  25. DECLARE SUB Install
  26. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  27. DECLARE FUNCTION ExtractDriveLetter(szPath$) AS STRING
  28.  
  29.  
  30. INIT:
  31.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  32.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  33.  
  34.     SetBitmap CUIDLL$, LOGO
  35.     SetTitle "Setup Computer Artworks Shamen Screensaver"
  36.  
  37.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  38.     IF szInf$ = "" THEN
  39.         szInf$ = GetSymbolValue("STF_CWDDIR") + "shamenss.INF"
  40.     END IF
  41.     ReadInfFile szInf$
  42.  
  43.     OPTCUR$ = "1"
  44.     DEST$ = "C:\ShamenSS"
  45.  
  46. WELCOME:
  47.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  48.     IF sz$ = "CONTINUE" THEN
  49.         UIPop 1
  50.     ELSE
  51.         GOSUB ASKQUIT
  52.         GOTO WELCOME
  53.     END IF
  54.  
  55.  
  56.  
  57.  
  58. GETPATH:
  59.     SetSymbolValue "EditTextIn", DEST$
  60.     SetSymbolValue "EditFocus", "END"
  61. GETPATHL1:
  62.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  63.     DEST$ = GetSymbolValue("EditTextOut")
  64.  
  65.     IF sz$ = "CONTINUE" THEN
  66.         IF IsDirWritable(DEST$) = 0 THEN
  67.             GOSUB BADPATH
  68.             GOTO GETPATHL1
  69.         END IF
  70.         UIPop 1
  71.     ELSEIF sz$ = "REACTIVATE" THEN
  72.         GOTO GETPATHL1
  73.     ELSEIF sz$ = "BACK" THEN
  74.         UIPop 1
  75.         GOTO WELCOME
  76. ''        GOTO OPTION
  77.     ELSE
  78.         GOSUB ASKQUIT
  79.         GOTO GETPATH
  80.     END IF
  81.  
  82.  
  83.     Install
  84.  
  85.  
  86. QUIT:
  87.     ON ERROR GOTO ERRQUIT
  88.  
  89.     IF ERR = 0 THEN
  90.         dlg% = EXITSUCCESS
  91.     ELSEIF ERR = STFQUIT THEN
  92.         dlg% = EXITQUIT
  93.     ELSE
  94.         dlg% = EXITFAILURE
  95.     END IF
  96. QUITL1:
  97.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  98.     IF sz$ = "REACTIVATE" THEN
  99.         GOTO QUITL1
  100.     END IF
  101.     UIPop 1
  102.  
  103.     END
  104.  
  105. ERRQUIT:
  106.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  107.     END
  108.  
  109.  
  110.  
  111. BADPATH:
  112.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  113.     IF sz$ = "REACTIVATE" THEN
  114.         GOTO BADPATH
  115.     END IF
  116.     UIPop 1
  117.     RETURN
  118.  
  119.  
  120.  
  121. ASKQUIT:
  122.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  123.  
  124.     IF sz$ = "EXIT" THEN
  125.         UIPopAll
  126.         ERROR STFQUIT
  127.     ELSEIF sz$ = "REACTIVATE" THEN
  128.         GOTO ASKQUIT
  129.     ELSE
  130.         UIPop 1
  131.     END IF
  132.     RETURN
  133.  
  134.  
  135.  
  136. '**
  137. '** Purpose:
  138. '**     Builds the copy list and performs all installation operations.
  139. '** Arguments:
  140. '**     none.
  141. '** Returns:
  142. '**     none.
  143. '*************************************************************************
  144. SUB Install STATIC
  145.  
  146.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  147.     CreateDir DEST$, cmoNone
  148.  
  149.     CreateIniKeyValue GetWindowsDir() + "control.ini", "Screensaver.The Shamen", "Sound", "1", cmoOverwrite
  150.     CreateIniKeyValue GetWindowsDir() + "control.ini", "Screensaver.The Shamen", "Files", DEST$, cmoOverwrite
  151.     CreateIniKeyValue GetWindowsDir() + "system.ini", "BOOT", "SCRNSAVE.EXE", GetWindowsSysDir() + "shamenss.scr", cmoOverwrite
  152.  
  153.     AddSectionFilesToCopyList "FILES", SrcDir$, DEST$
  154.     AddSectionFilesToCopyList "SYSTEMFILES", SrcDir$, GetWindowsSysDir()
  155.     CopyFilesInCopyList
  156.  
  157.     SHELL DEST$ + "\go.bat " +  ExtractDriveLetter(DEST$) + ": " + DEST$
  158. END SUB
  159.  
  160.  
  161.  
  162. '**
  163. '** Purpose:
  164. '**     Appends a file name to the end of a directory path,
  165. '**     inserting a backslash character as needed.
  166. '** Arguments:
  167. '**     szDir$  - full directory path (with optional ending "\")
  168. '**     szFile$ - filename to append to directory
  169. '** Returns:
  170. '**     Resulting fully qualified path name.
  171. '*************************************************************************
  172. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  173.     IF szDir$ = "" THEN
  174.         MakePath = szFile$
  175.     ELSEIF szFile$ = "" THEN
  176.         MakePath = szDir$
  177.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  178.         MakePath = szDir$ + szFile$
  179.     ELSE
  180.         MakePath = szDir$ + "\" + szFile$
  181.     END IF
  182. END FUNCTION
  183.  
  184. '*************************************************************************
  185. ' Returns the drive letter if there is one of the argument
  186. '*************************************************************************
  187. FUNCTION ExtractDriveLetter(szPath$) STATIC AS STRING
  188.     IF MID$(szPath$, 2, 1) = ":" THEN
  189.         ExtractDriveLetter = MID$(szPath$, 1, 1)
  190.     ELSE
  191.         ExtractDriveLetter = ""
  192.     ENDIF
  193. END FUNCTION
  194.